The emergence of distributed computing environments and associated technologies, such as web services, wireless networks, and the like poses a genuine challenge to the traditional deployment of software applications. What is missing between the two poles of locally-deployed, compiled applications and distributed applications operating over a network has been a cohesive framework that allows developers to deploy software applications with the complexity and richness of compiled executables, while retaining the platform independence and thinness of content and applications for web browsers or other thin hosting environments.